package net.butfly.albacore.dao.base;

import java.io.Serializable;

import net.butfly.albacore.criteria.Criteria;
import net.butfly.albacore.entity.BasicEntity;

public interface EntityDAO<E extends BasicEntity<K>, K extends Serializable> extends AbstractDAO {
	void insert(E entity);

	void delete(K id);

	void delete(Criteria criteria);

	void update(E entity);

	E load(K id);

	E[] select(Criteria criteria);

	int count(Criteria criteria);

	K[] selectID(Criteria criteria, Class<K> clazz);
}
